variables use UPPERCASE methods and fields use lowercase loop X from 0 to 99 executes 100 times (\(x=[0,99]\)) output X prints X use end to mark the end of code block of if, loop, while

bubble sort (basic):

ARRAY=[...]
loop I from 0 to ARRAY.size()-1
    loop J from 1 to ARRAY.size()-1
        if ARRAY[J-1] > ARRAY[J]
            TMP=ARRAY[J-1]
            ARRAY[J-1]=ARRAY[J]
            ARRAY[J]=TMP # swap
        end if
    end loop
end loop

bubble sort (optimized):

ARRAY=[...]
loop I from 0 to ARRAY.size()-1
    FLAG=0
    loop J from 1 to ARRAY.size()-1-I
        if ARRAY[J-1] > ARRAY[J]
            TMP=ARRAY[J-1]
            ARRAY[J-1]=ARRAY[J]
            ARRAY[J]=TMP # swap
            FLAG=1
        end if
    end loop
    if FLAG==0
        break
    end if
end loop

selection sort

ARRAY=[...]
loop I from 0 to ARRAY.size()-2
    MN=I
    loop J from I+1 to ARRAY.size()-1
        if ARRAY[J]<ARRAY[MN]
            MN=J
        end if
    end loop
    TMP=ARRAY[I]
    ARRAY[I]=ARRAY[MN]
    ARRAY[MN]=TMP
end loop

binary search: watch ==integer division== and ==boundary==

ARRAY=[...] # assume ascending
T=... # target
L=0
R=ARRAY.size()-1
MID=0
loop while L<=R
    MID=(L+R) div 2 # integer division
    if T>ARRAY[MID]
        L=MID+1
    else if T<ARRAY[MID]
        R=MID-1
    else
        break
    end if
end loop
if ARRAY[MID]==T
    output MID
else
    output -1
end if

Collection:

GRADE = Collection()

GRADE.resetNext() // reset pointer

loop while GRADE.hasNext()
    output GRADE.getNext()
end loop

common tricks

if asked for sub-program, use function